class Animal {
	eat() {}
}
class Dog extends Animal {
	jiao() {}
}
class Keji extends Dog {
	lovely() {}
}
type Son = (arg: Keji) => void
type Children = (arg: Dog) => void
type Father = (arg: Animal) => void

let son: Son = (arg) => {}
let children: Children = () => {}

let father: Father = () => {}

 son = children

let dog:Dog = new Dog()
let keji:Keji = new Keji()

// dog = keji
keji = dog
export {}
